package com.choosefine.it.team.dao;

import com.choosefine.it.team.model.ItemInfo;
import com.choosefine.it.team.model.vo.*;
import com.github.pagehelper.Page;

import java.util.List;
import java.util.Map;
/**
/**
 * 班组详情信息 持久接口
 * @auth liaozhanggen 2016-11-21 下午9:09:01
 *
 */
public interface ItemInfoMapper {
	
	ItemInfo selectByPrimaryKey(Integer id);
	
	/**
	 * 11.25dzq 根据用户查找相应数据
	 * @param usercode
	 * @return
	 */
	Page<ItemInfo> selectByUserCode(String usercode);

	int updateByPrimaryKeySelective(ItemInfo record);

	int updateByPrimaryKey(ItemInfo record);
	
	/**
	 * 根据主键，查询业务对象实体
	 * @auth liaozhanggen 2016-11-21 下午9:09:21
	 */
	ItemInfo findItemInfoById(Integer id);
	
	ItemInfo getTeamInfoById(Integer id);
	
	/**
	 * 12.10查找某项目下的班组数量dzq
	 * @return
	 */
	int selectCountTeamByProject(Map<String, Object> map);
	
	
	Page<ItemInfo> getTeamListByProject(Map<String, Object> map);
	/**
	 * 保存班组
	 * @author chenjian
	 * @time 2016-12-12 下午7:02:33
	 */
	int saveTeam(ItemInfo itemInfo);
	/**
	 * 更新班组
	 * @author chenjian
	 * @time 2016-12-14 下午2:00:48
	 */
	int updateTeam(ItemInfo itemInfo);
	/**
	 * 删除班组
	 * @author chenjian
	 * @return
	 */
	int deleteTeam(Map<String, Object> map);

	/**
	 * @author chenjian
	 * @time 2016-12-16 下午7:05:10
	 */
	ItemInfoVO teamDetail(Integer teamId);


	/**
	 * @author panqianqin
	 */
	List<String> selectTeamAffiliatedUnitsByUserCode(String userCode);


	Page<TeamMoneyMgtVO> selectTeamWorkerSalarySum(Map<String, Object>map);
	Page<TeamWorkerMoneyMgtVO> selectTeamWorkerSalaryBy(Map<String, Object>map);

	Integer getWorkerNumByTeamId(Integer teamId);
	/**
	 * @author chenjian
	 * @time 2016年12月30日下午3:26:04
	 */
	List<ItemInfo> findTeamByCode(Map<String, Object> params);
	
	List<ItemInfo> findTeamesByProjectCode(Map<String, Object> params);
	/**
	 * @Description：条件查询项目班组信息
	 * @Author：chenjian
	 * @Create Date：2017年2月15日
	 * @param：
	 * @return：
	 */
	Page<TeamVO> queryTeamList(Map<String, Object> params);

	/**
	 * @Description：校验同一项目同一分包承包人班组名不能重复(陈健)
	 * @Author：chenjian
	 * @Create Date：2017年2月25日
	 * @param：
	 * @return：
	 */
	Integer checkTeamName(Map<String, Object> map);
}
